From: Florian Müllner Date: Wed, 20 Mar 2019 17:03:27 +0000 (+0000) Subject: windowManager: Allow disabling touchpad workspace switch action X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~861^2^2~24 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=e83f2344f60abd4f2fce68a89bf393bf4bcc7a7d;p=gnome-shell.git windowManager: Allow disabling touchpad workspace switch action Just like actual ClutterActions, it can make sense to temporarily disable the touchpad action, so add an appropriate property. https://gitlab.gnome.org/GNOME/gnome-shell/issues/516 --- diff --git a/js/ui/windowManager.js b/js/ui/windowManager.js index ea9493d6f..683a876f1 100644 --- a/js/ui/windowManager.js +++ b/js/ui/windowManager.js @@ -459,10 +459,24 @@ var TouchpadWorkspaceSwitchAction = class { constructor(actor) { this._dx = 0; this._dy = 0; + this._enabled = true; actor.connect('captured-event', this._handleEvent.bind(this)); this._touchpadSettings = new Gio.Settings({schema_id: 'org.gnome.desktop.peripherals.touchpad'}); } + get enabled() { + return this._enabled; + } + + set enabled(enabled) { + if (this._enabled == enabled) + return; + + this._enabled = enabled; + if (!enabled) + this.emit('cancel'); + } + _checkActivated() { let dir; @@ -493,6 +507,9 @@ var TouchpadWorkspaceSwitchAction = class { if ((allowedModes & Main.actionMode) == 0) return Clutter.EVENT_PROPAGATE; + if (!this._enabled) + return Clutter.EVENT_PROPAGATE; + if (event.get_gesture_phase() == Clutter.TouchpadGesturePhase.UPDATE) { let [dx, dy] = event.get_gesture_motion_delta();